export interface GenerateFileSha256Data  {
  sha256 : string
  chunkMap : Map<number, string>
  chunks: Blob[]
}

// 上传前获取上传链接
export interface getUrlRequest {
  /**
   * 文件 sha256
   */
  file_sha_256?: any;
  /**
   * 文件大小
   */
  file_size?: number;
  /**
   * 文件分片总个数
   */
  split_count?: number;
  [property: string]: any;
}

// 上传
/**
 * request.AssetComplianceFileMerge
 */
export interface uploadRequest {
  /**
   * 文件名
   */
  file_name?: string;
  /**
   * 文件实际存储名称
   */
  file_sha256?: string;
  /**
   * 分片数据
   */
  part_data?: RequestFileUploadPartData[];
  /**
   * 上传ID
   */
  upload_id?: string;
  [property: string]: any;
}

/**
* 上传中的分片数据
*/
export interface RequestFileUploadPartData {
  /**
   * 分片上传返回 Etag
   */
  etag: string;
  /**
   * 分片序号
   */
  partNumber: number;
  [property: string]: any;
}

// 上传公共组件的传参
export interface uploadProps {
  multiple?: boolean; // 是否支持多选文件
  drag?: boolean; // 是否拖拽上传
  autoUpload?: boolean;  // 是否自动上传
  showFileList?: boolean; // 是否展示文件列表
  limit?: number; // 允许上传文件的最大数量
  uploadType : string; // 根据定义的字符串调用不同的上传及合并接口*
  [property: string]: any;
}